#ifndef _LOGGER_H_
#define _LOGGER_H_

#include <QCoreApplication>
#include <QDateTime>
#include <QDebug>
#include <QFile>
#include <QTextStream>
#include <qdebug.h>

class QLogger {
public:
  QLogger(const QString &filePath) {
    // 打开日志文件
    file.setFileName(filePath);
    if (!file.open(QIODevice::Append | QIODevice::Text)) {
      qWarning() << "Cannot open log file for writing:" << file.errorString();
    }
  }

  ~QLogger() {
    // 关闭文件
    if (file.isOpen()) {
      file.close();
    }
  }

public:
  void log(const QString &message) {
    if (file.isOpen()) {
      QTextStream out(&file);
      QString str;
      str = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss") +
            ": " + message + "\n";
      out << str;
      qDebug() << str;
    } else {
      qWarning() << "Log file is not open.";
    }
  }

private:
  QFile file;
};

#endif
